const express = require('express');
const session = require("express-session");
const MongoStore = require("connect-mongo");
const app = express();
app.use(session({
    name:'sid',//设置响应cookie的名字
    secret: 'your-secret-key', // 用于加密 session ID 的密钥
    saveUninitialized: true, // 设置是否为每一次请求都自动创建一个session对象
    resave: true, // 重新保存，只要往服务端发送请求，就重新村一次，延迟销毁时间
    store:MongoStore.create({//设置mongodb的连接，到时候会把session数据保存到数据库bilibili
        mongoUrl:'mongodb://127.0.0.1:27017/bilibili'
    }),
    cookie: {
        httpOnly:true,//前端不能操作cookie,cookie只用于传输
        maxAge:1000*60*5//生命周期
    }
}));
//登录
app.get('/login',(req,res)=>{
    //传对参数才设置session,如username=admin&password=admin
    if(req.query.username === 'admin' && req.query.password === 'admin'){
        //设置session
        req.session.username = 'admin';
        //也可以设置其他
        req.session.uid = '258achh34';
        //成功响应
        res.send('登录成功');
    }else{
        res.send('登录失败');
    }
})
//session的读取
app.get('/cart',(req,res)=>{
    //检测session是否存在用户数据
    if(req.session.username){
        res.send(`购物车页面，欢迎您${req.session.username}`)
    }else{
        res.send('您还没有登录')
    }
})
//session的销毁
app.get('/logout',(req,res)=>{
    req.session.destroy(()=>{
        res.send('退出成功');
    })
})
app.listen(3000);